//package com.example.filter;
//
//import com.alibaba.fastjson.JSONObject;
//import com.example.pojo.Result;
//import com.example.utils.JwtUtils;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//import org.springframework.util.StringUtils;
//
//import javax.servlet.*;
//import javax.servlet.annotation.WebFilter;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//
//@Slf4j
//@Component
//@WebFilter(urlPatterns = "/*")
//public class LoginCheckFilter implements Filter {
//    @Override
//    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//        HttpServletRequest req = (HttpServletRequest) servletRequest;
//        HttpServletResponse resp = (HttpServletResponse) servletResponse;
//
//
//
//        String url = req.getRequestURI().toString();
//        log.info("请求的url：{}",url);
//        if (url.contains("login")){
//            log.info("登录操作，放行");
//            filterChain.doFilter(servletRequest,servletResponse);
//            return;
//        }
//
//        if ("OPTIONS".equals(req.getMethod())) {
//            System.out.println("OPTIONS请求，放行");
//            filterChain.doFilter(req,resp);
//            return;
//
//        }
//
//
//        String jwt = req.getHeader("token");
////        if (jwt == null){
////            jwt = req.getHeader("Token");
////        }
//
//
//        if (!StringUtils.hasLength(jwt)){
//            log.info("请求头token为空，返回未登录的信息");
//            Result error = Result.error("NOT_LOGIN");
//
//            String notLogin = JSONObject.toJSONString(error);
//            resp.getWriter().write(notLogin);
//            return;
//        }
//
//        try {
//            JwtUtils.parseJWT(jwt);
//        } catch (Exception e) {
////            当你调用这个方法时，它会将该异常对象的堆栈跟踪信息输出到标准错误流（通常是控制台）。
//            e.printStackTrace();
//            log.info("解析令牌失败，返回未登录的错误信息");
//            Result error = Result.error("NOT_LOGIN");
//
//            String notLogin = JSONObject.toJSONString(error);
//            resp.getWriter().write(notLogin);
//            return;
//        }
//        log.info("令牌合法，放行");
//        filterChain.doFilter(servletRequest,servletResponse);
//    }
//}
